package br.com.jk.usuario.login;

import br.com.jk.master.Master;
import br.com.jk.usuario.Usuario;
import br.com.jk.usuario.permissoes.Permissao;
import br.com.jk.usuario.permissoes.PermissaoRn;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JMenuItem;

/**
 *
 * @author camilo
 */
public class LoginPermissao {

  private static List<Permissao> permissoes = new ArrayList<>();

  /**
   * Atribui as permissões do usuário, como por exemplo, qual JDialog poderá ser visualizado
   *
   * @param usuario
   */
  public static void atribuiPermissoes(Usuario usuario) {
    PermissaoRn permissaoRn = new PermissaoRn();
    permissoes = permissaoRn.listar(usuario);
    for (int i = 0; i < permissoes.size(); i++) {
      Permissao permissao = permissoes.get(i);
      switch (permissao.getRegra().getRegra()) {
        case VISUALIZA_CLIENTE:
          habilitaVisualizacao(Master.jmiCliente, permissao.getHabilitado());
          break;
        case VISUALIZA_FORNECEDOR:
          habilitaVisualizacao(Master.jmiFornecedor, permissao.getHabilitado());
          break;
        case VISUALIZA_PRODUTO:
          habilitaVisualizacao(Master.jmiProduto, permissao.getHabilitado());
          break;
        case VISUALIZA_EMPRESA:
          habilitaVisualizacao(Master.jmiEmpresa, permissao.getHabilitado());
          break;
        case VISUALIZA_BANCO:
          habilitaVisualizacao(Master.jmiBanco, permissao.getHabilitado());
          break;
        case VISUALIZA_CIDADE:
          habilitaVisualizacao(Master.jmiCidade, permissao.getHabilitado());
          break;
        case VISUALIZA_CONTA_BANCO:
          habilitaVisualizacao(Master.jmiContaBanco, permissao.getHabilitado());
          break;
        case VISUALIZA_CONFIG:
          habilitaVisualizacao(Master.jmiConfiguracoes, permissao.getHabilitado());
          break;
        case VISUALIZA_COTACAO:
          habilitaVisualizacao(Master.jmiCotacoes, permissao.getHabilitado());
          break;
        case VISUALIZA_COTACAO_ITENS:
          habilitaVisualizacao(Master.jmiCriaLista, permissao.getHabilitado());
          break;
        case VISUALIZA_COTACAO_LANCAMENTO:
          habilitaVisualizacao(Master.jmiLancaProd, permissao.getHabilitado());
          break;
        case VISUALIZA_MOVIMENTO:
          habilitaVisualizacao(Master.jmiMovimentoBanco, permissao.getHabilitado());
          break;
        case VISUALIZA_MOVIMENTO_TIPO:
          habilitaVisualizacao(Master.jmiTipoMovimentoBanco, permissao.getHabilitado());
          break;
        case VISUALIZA_USUARIO:
          habilitaVisualizacao(Master.jmiUsuario, permissao.getHabilitado());
          break;
        case VISUALIZA_VALEALIM_CARTAO:
          habilitaVisualizacao(Master.jmiCartoes, permissao.getHabilitado());
          break;
        case VISUALIZA_VALEALIM_CARTAOTIPO:
          habilitaVisualizacao(Master.jmiTipoCartoes, permissao.getHabilitado());
          break;
        case VISUALIZA_VALEALIM_CARTAOVENDA:
          habilitaVisualizacao(Master.jmiVendas, permissao.getHabilitado());
          break;
        case VISUALIZA_COTACAO_GERA_XML:
          habilitaVisualizacao(Master.jmiGeraXml, permissao.getHabilitado());
          break;
        case VISUALIZA_COTACAO_IMPORTA_XML:
          habilitaVisualizacao(Master.jmiImportaXml, permissao.getHabilitado());
          break;
        case VISUALIZA_CAIXA:
          habilitaVisualizacao(Master.jmiCaixa, permissao.getHabilitado());
          break;
        case VISUALIZA_PLANO_CONTAS:
          habilitaVisualizacao(Master.jmiPlanoContas, permissao.getHabilitado());
          break;
      }
    }
  }

  private static void habilitaVisualizacao(JMenuItem jmi, Boolean habilita) {
    jmi.setVisible(habilita);
    jmi.setEnabled(habilita);
  }
}
